package user;

import book.Book;
import book.Library;

import java.time.LocalDate;
import java.util.Scanner;

public class AdminUser extends User {

    Scanner sc = new Scanner(System.in);

    Library library = Library.getLibrary();

    public AdminUser(String userName, int userID) {
        super(userName, userID, "管理员");
    }

    @Override
    public int display() {
        System.out.println("管理员 " + userName + " 的操作菜单:");
        System.out.println("1. 查找图书");
        System.out.println("2. 打印所有的图书");
        System.out.println("3. 退出系统");
        System.out.println("4. 上架图书");
        System.out.println("5. 修改图书");
        System.out.println("6. 下架图书");
        System.out.println("7. 统计借阅次数");
        System.out.println("8. 查看最后欢迎的前K本书");
        System.out.println("9. 查看库存状态");
        System.out.println("10. 检查超过⼀年未下架的图书");
        System.out.println("请选择你的操作：");
        return sc.nextInt();
    }

    //上架图书
    public void addBook() {
        sc.nextLine();// 吞掉换行符
        System.out.println("请输入书名: ");
        String title = sc.next();// 输入书名
        System.out.println("请输入作者");
        String author = sc.next();// 输入作者名称
        System.out.println("请输入类别");
        String category = sc.next();// 输入图书类别
        System.out.println("请输入出版年份");
        int year = sc.nextInt();// 输入出版年份
        sc.nextLine();// 吞掉换行符

        LocalDate shelfData = LocalDate.now();// 当前时间设为上架时间
        Book newBook = new Book(title,author,category,year,shelfData);// 创建新的图书类对象
        //调用图书类 添加图书
        library.addBook(newBook);

    }

    //修改图书
    public void updateBook() {
        //1.先展示馆内的所有图书
        library.displayBooks();
        //2.获取要修改的图书Id
        System.out.println("请输入要修改的图书Id:");
        int bookId = sc.nextInt();
        sc.nextLine();// 吞掉换行符
        //获取对应的图书
        Book book = library.searchBook(bookId);
        //没查找到该图书,退出
        if(book == null) {
            System.out.println("没有ID为："+bookId+" 的书籍！");
            return;
        }

        System.out.println("当前书名：" + book.getTitle());
        System.out.println("请输入新的书名：");
        String newTitle = sc.nextLine();  // 输入新的书名

        System.out.println("当前作者：" + book.getAuthor());
        System.out.println("请输入新的作者：");
        String newAuthor = sc.nextLine();  // 输入新的作者

        System.out.println("当前类别：" + book.getCategory());
        System.out.println("请输入新的类别：");
        String newCategory = sc.nextLine();  // 输入新的类别

        book.setTitle(newTitle);
        book.setAuthor(newAuthor);
        book.setCategory(newCategory);

        library.updataBook(book);
    }

    //下架图书
    public void removeBook() {
        //先展示一下所有图书
        library.displayBooks();
        System.out.println("请输入要删除的图书Id:");
        int bookId = sc.nextInt();
        sc.nextLine();// 吞掉换行符
        //获取要下架图书信息
        Book book = library.searchBook(bookId);
        //执行下架操作
        library.removeBook(book);
        //打印一下结果
        System.out.println("图书" + book.getTitle() + "已下架!");
    }

    //统计每本书的借阅次数
    public void borrowCount() {
        //不需要准备其他工作，直接调用具体的业务实现
        library.borrowCount();
    }

    //查询最受欢迎的前n本书
    public void generateBook() {
        System.out.println("请输入你要查看的最受欢迎的前k本书,注意k值不能超过 " + library.getBookCount());
        int k = sc.nextInt();
        if(k <= 0 || k >= library.getBookCount()) {
            System.out.println("查询失败!");
            return;
        }
        library.generateBook(k);
    }

    //查看库存状态
    public void checkInventoryStatus() {
        library.checkInventoryStatus();
    }

    //移除上架超过一年的图书
    public void checkAndRemoveOldBooks() {
        library.checkAndRemoveOldBooks();
    }

}
